library(foreign)
library(tidyr)
library(ggplot2)
library(dplyr)
library(lubridate)
library(readr)
library(plotly)
library(scales)

# Theming
quartzFonts(
  Roboto =
    c("Roboto-Light",
      "Roboto-Bold",
      "Roboto-Regular",
      "Roboto-Thin")
)

theme_set(
  theme_bw(base_family = "Roboto", base_size = 10) +
    theme(
      plot.title = element_text(size = 14,
                                margin = margin(0, 0, 4, 0, "pt")),
      plot.subtitle = element_text(size = 8),
      plot.caption = element_text(size = 6),
      plot.background   = element_rect("#fafafa", "#fafafa"),
      panel.background  = element_rect("#fafafa"),
      panel.border = element_blank()
    )
)

rm(list=ls())

Import & Manipulate Data

Calculate score

Assign category to medium

load(file = "output/mediatenor.Rda")

Figures

Point Plots

Tageszeitungen

p <- df.reduced %>%
  filter(category == "daily_print") %>%
  filter(medium != "Berliner") %>%
  ggplot(aes(year, wertung, color=p_group, group=p_group)) +
  geom_point(size=0.8) + geom_line() +
  facet_wrap(~medium, ncol = 3) +
  geom_hline(yintercept = 0, color="grey10", 
             size=0.3, linetype = 2) +
  labs(x="", y="", title="Tageszeitungen (ungewichtet)", color="") +
  theme(axis.text.x = element_text(angle = 90),
        legend.position = "bottom") +
  scale_x_continuous(breaks = seq(min(df.reduced$year),max(df.reduced$year),2)) 
#p
ggplotly(p, tooltop=c("medium", "wertung"))
p <- df.reduced %>%
  filter(category == "daily_print") %>%
  filter(medium != "Berliner") %>%
  ggplot(aes(year, weighted, color=p_group, group=p_group)) +
  geom_point(size=0.8) + geom_line() +
  facet_wrap(~medium, ncol = 3) +
  geom_hline(yintercept = 0, color="grey10", 
             size=0.3, linetype = 2) +
  labs(x="", y="", title="Tageszeitungen (gewichtet)", color="") +
  theme(axis.text.x = element_text(angle = 90),
        legend.position = "bottom") +
  scale_x_continuous(breaks = seq(min(df.reduced$year),max(df.reduced$year),2)) 

ggplotly(p, tooltop=c("medium", "weighted"))

Magazine und Wochenzeitungen

p <- df.reduced %>%
  filter(category == "magazine_print") %>%
  ggplot(aes(year, wertung, color=p_group, group = p_group)) +
  geom_point(size=0.8) + geom_line() +
  facet_wrap(~medium, ncol = 5) +
  geom_hline(yintercept = 0, color="grey10", 
             size=0.3, linetype = 2) +
  labs(x="", y="", title="Magazine und Wochenzeitungen (ungewichtet)", color="") +
  theme(axis.text.x = element_text(angle = 90),
        legend.position = "bottom") +
  scale_x_continuous(breaks = seq(min(df.reduced$year),max(df.reduced$year),2)) 

ggplotly(p, tooltop=c("medium", "wertung"))
p <- df.reduced %>%
  filter(category == "magazine_print") %>%
  ggplot(aes(year, weighted, color=p_group, group = p_group)) +
  geom_point(size=0.8) + geom_line() +
  facet_wrap(~medium, ncol = 5) +
    geom_hline(yintercept = 0, color="grey10", 
             size=0.3, linetype = 2) +
  labs(x="", y="", title="Magazine und Wochenzeitungen (gewichtet)", color="") +
  theme(axis.text.x = element_text(angle = 90)) +
  scale_x_continuous(breaks = seq(min(df.reduced$year),max(df.reduced$year),2)) 

ggplotly(p, tooltop=c("medium", "weighted"))

Nachrichtensendungen

p <- df.reduced %>%
  filter(category == "news_tv") %>%
  ggplot(aes(year, wertung, color=p_group)) +
  geom_point(size=0.8) + geom_line() +
  facet_wrap(~medium, ncol = 3) +
  geom_hline(yintercept = 0, color="grey10", 
             size=0.3, linetype = 2) +
  labs(x="", y="", title="Nachrichtensendungen (ungewichtet)", color="") +
  theme(axis.text.x = element_text(angle = 90)) +
  scale_x_continuous(breaks = seq(min(df.reduced$year),max(df.reduced$year),2)) 

ggplotly(p, tooltop=c("medium", "wertung"))
p <- df.reduced %>%
  filter(category == "news_tv") %>%
  ggplot(aes(year, weighted, color=p_group)) +
  geom_point(size=0.8) + geom_line() +
  facet_wrap(~medium, ncol = 3) +
  geom_hline(yintercept = 0, color="grey10", 
             size=0.3, linetype = 2) +
  labs(x="", y="", title="Nachrichtensendungen (gewichtet)", color="") +
  theme(axis.text.x = element_text(angle = 90)) +
  scale_x_continuous(breaks = seq(min(df.reduced$year),max(df.reduced$year),2)) 

ggplotly(p, tooltop=c("medium", "weighted"))

Politische TV-Shows

p <- df.reduced %>%
  filter(category == "polit_tv") %>%
  ggplot(aes(year, wertung, color=p_group)) +
  geom_point(size=0.8) + geom_line() +
  facet_wrap(~medium, ncol = 6) +
  geom_hline(yintercept = 0, color="grey10", 
             size=0.3, linetype = 2) +
  labs(x="", y="", title="Politische TV-Shows (ungewichtet)", color="") +
  theme(axis.text.x = element_text(angle = 90),
        legend.position = "none") +
  scale_x_continuous(breaks = seq(min(df.reduced$year),max(df.reduced$year),2)) 

ggplotly(p, tooltop=c("medium", "wertung"))
p <- df.reduced %>%
  filter(category == "polit_tv") %>%
  ggplot(aes(year, weighted, color=p_group)) +
  geom_point(size=0.8) + geom_line() +
  facet_wrap(~medium, ncol = 6) +
  geom_hline(yintercept = 0, color="grey10", 
             size=0.3, linetype = 2) +
  labs(x="", y="", title="Politische TV-Shows (gewichtet)", color="") +
  theme(axis.text.x = element_text(angle = 90)) +
  scale_x_continuous(breaks = seq(min(df.reduced$year),max(df.reduced$year),2)) 

ggplotly(p, tooltop=c("medium", "weighted"))

Radarcharts

library(radarchart)

Tageszeitungen

radar <- df.reduced %>% 
  filter(category == "daily_print") %>%
  group_by(medium, p_group) %>%
  dplyr::summarise(wertung = mean(wertung, na.rm = T)) %>%
  ungroup() %>%
  spread(key=medium, value = wertung)
chartJSRadar(scores = radar, labelSize = 12, 
             main = "Tageszeitungen (ungewichtet)",
             scaleStartValue = -0.2,
             maxScale = 0, 
             responsive = T,
             showToolTipLabel = TRUE)
radar <- df.reduced %>% 
  filter(category == "daily_print") %>%
  group_by(medium, p_group) %>%
  dplyr::summarise(weighted = mean(weighted, na.rm = T)) %>%
  ungroup() %>%
  spread(key=medium, value = weighted)
chartJSRadar(scores = radar, labelSize = 12, 
             main = "Tageszeitungen (gewichtet)",
             scaleStartValue = -0.05,
             maxScale = 0, 
             responsive = T,
             showToolTipLabel = TRUE)

Magazine und Wochenzeitungen

radar <- df.reduced %>% 
  filter(category == "magazine_print") %>%
  group_by(medium, p_group) %>%
  dplyr::summarise(wertung = mean(wertung, na.rm = T)) %>%
  ungroup() %>%
  spread(key=medium, value = wertung)
chartJSRadar(scores = radar, labelSize = 12, 
             main = "Magazine und Wochenzeitungen (ungewichtet)",
             scaleStartValue = -0.16,
             maxScale = 0.02, 
             responsive = T,
             showToolTipLabel = TRUE)
radar <- df.reduced %>% 
  filter(category == "magazine_print") %>%
  group_by(medium, p_group) %>%
  dplyr::summarise(weighted = mean(weighted, na.rm = T)) %>%
  ungroup() %>%
  spread(key=medium, value = weighted)
chartJSRadar(scores = radar, labelSize = 12, 
             main = "Magazine und Wochenzeitungen (gewichtet)",
             scaleStartValue = -0.05,
             maxScale = 0.01, 
             responsive = T,
             showToolTipLabel = TRUE)

Nachritensendungen

radar <- df.reduced %>% 
  filter(category == "news_tv") %>%
  group_by(medium, p_group) %>%
  dplyr::summarise(wertung = mean(wertung, na.rm = T)) %>%
  ungroup() %>%
  spread(key=medium, value = wertung)
chartJSRadar(scores = radar, labelSize = 12, 
             main = "Nachritensendungen (ungewichtet)",
             scaleStartValue = -0.1,
             maxScale = -0.01, 
             responsive = T,
             showToolTipLabel = TRUE)
radar <- df.reduced %>% 
  filter(category == "news_tv") %>%
  group_by(medium, p_group) %>%
  dplyr::summarise(weighted = mean(weighted, na.rm = T)) %>%
  ungroup() %>%
  spread(key=medium, value = weighted)
chartJSRadar(scores = radar, labelSize = 12, 
             main = "Nachritensendungen (gewichtet)",
             scaleStartValue = -0.04,
             maxScale = 0, 
             responsive = T,
             showToolTipLabel = TRUE)

Politische TV-Shows

radar <- df.reduced %>% 
  filter(category == "polit_tv") %>%
  group_by(medium, p_group) %>%
  dplyr::summarise(wertung = mean(wertung, na.rm = T)) %>%
  ungroup() %>%
  spread(key=medium, value = wertung)
chartJSRadar(scores = radar, labelSize = 12, 
             main = "Politische TV-Shows (ungewichtet)",
             scaleStartValue = -0.45,
             maxScale = 0.1, 
             responsive = T,
             showToolTipLabel = TRUE)
radar <- df.reduced %>% 
  filter(category == "polit_tv") %>%
  group_by(medium, p_group) %>%
  dplyr::summarise(weighted = mean(weighted, na.rm = T)) %>%
  ungroup() %>%
  spread(key=medium, value = weighted)
chartJSRadar(scores = radar, labelSize = 12, 
             main = "Politische TV-Shows (gewichtet)",
             scaleStartValue = -0.16,
             maxScale = 0.01, 
             responsive = T,
             showToolTipLabel = TRUE)